// $ANTLR 3.4 C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g 2012-10-24 19:32:04

    package practica6;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings({"all", "warnings", "unchecked"})
public class AnasintXML extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "ABRIR_ET", "AUTOR", "BIBLIOTECA", "BLANCO", "CADENA", "CERRAR_ET", "COMENTARIO", "COMILLAS", "DIGITO", "EDITORIAL", "FIN_ET", "IGUAL", "LETRA", "LIBRO", "NUMERO", "PALABRAS", "PUNTO", "SEPARADOR", "TITULO"
    };

    public static final int EOF=-1;
    public static final int ABRIR_ET=4;
    public static final int AUTOR=5;
    public static final int BIBLIOTECA=6;
    public static final int BLANCO=7;
    public static final int CADENA=8;
    public static final int CERRAR_ET=9;
    public static final int COMENTARIO=10;
    public static final int COMILLAS=11;
    public static final int DIGITO=12;
    public static final int EDITORIAL=13;
    public static final int FIN_ET=14;
    public static final int IGUAL=15;
    public static final int LETRA=16;
    public static final int LIBRO=17;
    public static final int NUMERO=18;
    public static final int PALABRAS=19;
    public static final int PUNTO=20;
    public static final int SEPARADOR=21;
    public static final int TITULO=22;

    // delegates
    public Parser[] getDelegates() {
        return new Parser[] {};
    }

    // delegators


    public AnasintXML(TokenStream input) {
        this(input, new RecognizerSharedState());
    }
    public AnasintXML(TokenStream input, RecognizerSharedState state) {
        super(input, state);
    }

    public String[] getTokenNames() { return AnasintXML.tokenNames; }
    public String getGrammarFileName() { return "C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g"; }


         
         boolean reconoceAtributo = false;
         
         private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
         public ArrayList<RecognitionException> getErrors() {
            return errors;
         }
         @Override
         public void reportError (RecognitionException e) {
            String msg = getErrorMessage(e, getTokenNames());
            System.err.println(msg);
            errors.add(e);
         }



    // $ANTLR start "abrir_etiqueta"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:29:1: abrir_etiqueta : ABRIR_ET ;
    public final void abrir_etiqueta() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:29:15: ( ABRIR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:29:17: ABRIR_ET
            {
            match(input,ABRIR_ET,FOLLOW_ABRIR_ET_in_abrir_etiqueta47); 

            reconoceAtributo = true;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "abrir_etiqueta"



    // $ANTLR start "entrada"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:31:1: entrada : et_biblioteca ( libros )* et_biblioteca_fin ;
    public final void entrada() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:31:8: ( et_biblioteca ( libros )* et_biblioteca_fin )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:31:10: et_biblioteca ( libros )* et_biblioteca_fin
            {
            pushFollow(FOLLOW_et_biblioteca_in_entrada56);
            et_biblioteca();

            state._fsp--;


            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:31:24: ( libros )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==ABRIR_ET) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:31:24: libros
            	    {
            	    pushFollow(FOLLOW_libros_in_entrada58);
            	    libros();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            pushFollow(FOLLOW_et_biblioteca_fin_in_entrada61);
            et_biblioteca_fin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "entrada"



    // $ANTLR start "et_biblioteca"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:33:1: et_biblioteca : abrir_etiqueta BIBLIOTECA ( atributo )? CERRAR_ET ;
    public final void et_biblioteca() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:33:14: ( abrir_etiqueta BIBLIOTECA ( atributo )? CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:33:16: abrir_etiqueta BIBLIOTECA ( atributo )? CERRAR_ET
            {
            pushFollow(FOLLOW_abrir_etiqueta_in_et_biblioteca68);
            abrir_etiqueta();

            state._fsp--;


            match(input,BIBLIOTECA,FOLLOW_BIBLIOTECA_in_et_biblioteca70); 

            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:33:42: ( atributo )?
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==PALABRAS) ) {
                alt2=1;
            }
            switch (alt2) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:33:42: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_et_biblioteca72);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_biblioteca75); 

            reconoceAtributo = false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_biblioteca"



    // $ANTLR start "et_biblioteca_fin"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:34:1: et_biblioteca_fin : FIN_ET BIBLIOTECA CERRAR_ET ;
    public final void et_biblioteca_fin() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:34:18: ( FIN_ET BIBLIOTECA CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:34:20: FIN_ET BIBLIOTECA CERRAR_ET
            {
            match(input,FIN_ET,FOLLOW_FIN_ET_in_et_biblioteca_fin83); 

            match(input,BIBLIOTECA,FOLLOW_BIBLIOTECA_in_et_biblioteca_fin85); 

            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_biblioteca_fin87); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_biblioteca_fin"



    // $ANTLR start "et_libro"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:36:1: et_libro : abrir_etiqueta LIBRO ( atributo )? CERRAR_ET ;
    public final void et_libro() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:36:9: ( abrir_etiqueta LIBRO ( atributo )? CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:36:11: abrir_etiqueta LIBRO ( atributo )? CERRAR_ET
            {
            pushFollow(FOLLOW_abrir_etiqueta_in_et_libro94);
            abrir_etiqueta();

            state._fsp--;


            match(input,LIBRO,FOLLOW_LIBRO_in_et_libro96); 

            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:36:32: ( atributo )?
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==PALABRAS) ) {
                alt3=1;
            }
            switch (alt3) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:36:32: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_et_libro98);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_libro101); 

            reconoceAtributo = false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_libro"



    // $ANTLR start "et_libro_fin"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:37:1: et_libro_fin : FIN_ET LIBRO CERRAR_ET ;
    public final void et_libro_fin() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:37:13: ( FIN_ET LIBRO CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:37:15: FIN_ET LIBRO CERRAR_ET
            {
            match(input,FIN_ET,FOLLOW_FIN_ET_in_et_libro_fin109); 

            match(input,LIBRO,FOLLOW_LIBRO_in_et_libro_fin111); 

            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_libro_fin113); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_libro_fin"



    // $ANTLR start "et_titulo"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:39:1: et_titulo : abrir_etiqueta TITULO ( atributo )? CERRAR_ET ;
    public final void et_titulo() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:39:10: ( abrir_etiqueta TITULO ( atributo )? CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:39:12: abrir_etiqueta TITULO ( atributo )? CERRAR_ET
            {
            pushFollow(FOLLOW_abrir_etiqueta_in_et_titulo120);
            abrir_etiqueta();

            state._fsp--;


            match(input,TITULO,FOLLOW_TITULO_in_et_titulo122); 

            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:39:34: ( atributo )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==PALABRAS) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:39:34: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_et_titulo124);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_titulo127); 

            reconoceAtributo = false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_titulo"



    // $ANTLR start "et_titulo_fin"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:40:1: et_titulo_fin : FIN_ET TITULO CERRAR_ET ;
    public final void et_titulo_fin() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:40:14: ( FIN_ET TITULO CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:40:16: FIN_ET TITULO CERRAR_ET
            {
            match(input,FIN_ET,FOLLOW_FIN_ET_in_et_titulo_fin135); 

            match(input,TITULO,FOLLOW_TITULO_in_et_titulo_fin137); 

            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_titulo_fin139); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_titulo_fin"



    // $ANTLR start "et_autor"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:42:1: et_autor : abrir_etiqueta AUTOR ( atributo )? CERRAR_ET ;
    public final void et_autor() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:42:9: ( abrir_etiqueta AUTOR ( atributo )? CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:42:11: abrir_etiqueta AUTOR ( atributo )? CERRAR_ET
            {
            pushFollow(FOLLOW_abrir_etiqueta_in_et_autor146);
            abrir_etiqueta();

            state._fsp--;


            match(input,AUTOR,FOLLOW_AUTOR_in_et_autor148); 

            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:42:32: ( atributo )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==PALABRAS) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:42:32: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_et_autor150);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_autor153); 

            reconoceAtributo = false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_autor"



    // $ANTLR start "et_autor_fin"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:43:1: et_autor_fin : FIN_ET AUTOR CERRAR_ET ;
    public final void et_autor_fin() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:43:13: ( FIN_ET AUTOR CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:43:15: FIN_ET AUTOR CERRAR_ET
            {
            match(input,FIN_ET,FOLLOW_FIN_ET_in_et_autor_fin161); 

            match(input,AUTOR,FOLLOW_AUTOR_in_et_autor_fin163); 

            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_autor_fin165); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_autor_fin"



    // $ANTLR start "et_editorial"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:45:1: et_editorial : abrir_etiqueta EDITORIAL ( atributo )? CERRAR_ET ;
    public final void et_editorial() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:45:13: ( abrir_etiqueta EDITORIAL ( atributo )? CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:45:15: abrir_etiqueta EDITORIAL ( atributo )? CERRAR_ET
            {
            pushFollow(FOLLOW_abrir_etiqueta_in_et_editorial172);
            abrir_etiqueta();

            state._fsp--;


            match(input,EDITORIAL,FOLLOW_EDITORIAL_in_et_editorial174); 

            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:45:40: ( atributo )?
            int alt6=2;
            int LA6_0 = input.LA(1);

            if ( (LA6_0==PALABRAS) ) {
                alt6=1;
            }
            switch (alt6) {
                case 1 :
                    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:45:40: atributo
                    {
                    pushFollow(FOLLOW_atributo_in_et_editorial176);
                    atributo();

                    state._fsp--;


                    }
                    break;

            }


            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_editorial179); 

            reconoceAtributo = false;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_editorial"



    // $ANTLR start "et_editorial_fin"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:46:1: et_editorial_fin : FIN_ET EDITORIAL CERRAR_ET ;
    public final void et_editorial_fin() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:46:17: ( FIN_ET EDITORIAL CERRAR_ET )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:46:19: FIN_ET EDITORIAL CERRAR_ET
            {
            match(input,FIN_ET,FOLLOW_FIN_ET_in_et_editorial_fin187); 

            match(input,EDITORIAL,FOLLOW_EDITORIAL_in_et_editorial_fin189); 

            match(input,CERRAR_ET,FOLLOW_CERRAR_ET_in_et_editorial_fin191); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "et_editorial_fin"



    // $ANTLR start "libros"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:48:1: libros : et_libro contenido et_libro_fin ;
    public final void libros() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:48:7: ( et_libro contenido et_libro_fin )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:48:9: et_libro contenido et_libro_fin
            {
            pushFollow(FOLLOW_et_libro_in_libros198);
            et_libro();

            state._fsp--;


            pushFollow(FOLLOW_contenido_in_libros200);
            contenido();

            state._fsp--;


            pushFollow(FOLLOW_et_libro_fin_in_libros202);
            et_libro_fin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "libros"



    // $ANTLR start "contenido"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:50:1: contenido : titulo autor editorial ;
    public final void contenido() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:50:10: ( titulo autor editorial )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:50:12: titulo autor editorial
            {
            pushFollow(FOLLOW_titulo_in_contenido209);
            titulo();

            state._fsp--;


            pushFollow(FOLLOW_autor_in_contenido211);
            autor();

            state._fsp--;


            pushFollow(FOLLOW_editorial_in_contenido213);
            editorial();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "contenido"



    // $ANTLR start "titulo"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:52:1: titulo : et_titulo dentro_et et_titulo_fin ;
    public final void titulo() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:52:7: ( et_titulo dentro_et et_titulo_fin )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:52:9: et_titulo dentro_et et_titulo_fin
            {
            pushFollow(FOLLOW_et_titulo_in_titulo220);
            et_titulo();

            state._fsp--;


            pushFollow(FOLLOW_dentro_et_in_titulo222);
            dentro_et();

            state._fsp--;


            pushFollow(FOLLOW_et_titulo_fin_in_titulo224);
            et_titulo_fin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "titulo"



    // $ANTLR start "autor"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:54:1: autor : et_autor dentro_et et_autor_fin ;
    public final void autor() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:54:6: ( et_autor dentro_et et_autor_fin )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:54:8: et_autor dentro_et et_autor_fin
            {
            pushFollow(FOLLOW_et_autor_in_autor231);
            et_autor();

            state._fsp--;


            pushFollow(FOLLOW_dentro_et_in_autor233);
            dentro_et();

            state._fsp--;


            pushFollow(FOLLOW_et_autor_fin_in_autor235);
            et_autor_fin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "autor"



    // $ANTLR start "editorial"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:56:1: editorial : et_editorial dentro_et et_editorial_fin ;
    public final void editorial() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:56:10: ( et_editorial dentro_et et_editorial_fin )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:56:12: et_editorial dentro_et et_editorial_fin
            {
            pushFollow(FOLLOW_et_editorial_in_editorial242);
            et_editorial();

            state._fsp--;


            pushFollow(FOLLOW_dentro_et_in_editorial244);
            dentro_et();

            state._fsp--;


            pushFollow(FOLLOW_et_editorial_fin_in_editorial246);
            et_editorial_fin();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "editorial"



    // $ANTLR start "dentro_et"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:58:1: dentro_et : ( PALABRAS | PUNTO )* ;
    public final void dentro_et() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:58:10: ( ( PALABRAS | PUNTO )* )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:58:12: ( PALABRAS | PUNTO )*
            {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:58:12: ( PALABRAS | PUNTO )*
            loop7:
            do {
                int alt7=2;
                int LA7_0 = input.LA(1);

                if ( ((LA7_0 >= PALABRAS && LA7_0 <= PUNTO)) ) {
                    alt7=1;
                }


                switch (alt7) {
            	case 1 :
            	    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:
            	    {
            	    if ( (input.LA(1) >= PALABRAS && input.LA(1) <= PUNTO) ) {
            	        input.consume();
            	        state.errorRecovery=false;
            	    }
            	    else {
            	        MismatchedSetException mse = new MismatchedSetException(null,input);
            	        throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    break loop7;
                }
            } while (true);


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "dentro_et"



    // $ANTLR start "atributo"
    // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:60:1: atributo :{...}? PALABRAS IGUAL CADENA ;
    public final void atributo() throws RecognitionException {
        try {
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:60:9: ({...}? PALABRAS IGUAL CADENA )
            // C:\\Users\\usuario\\workspace\\Practica6-PL\\src\\main\\java\\practica6\\AnasintXML.g:60:11: {...}? PALABRAS IGUAL CADENA
            {
            if ( !((reconoceAtributo)) ) {
                throw new FailedPredicateException(input, "atributo", "reconoceAtributo");
            }

            match(input,PALABRAS,FOLLOW_PALABRAS_in_atributo267); 

            match(input,IGUAL,FOLLOW_IGUAL_in_atributo269); 

            match(input,CADENA,FOLLOW_CADENA_in_atributo271); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }

        finally {
        	// do for sure before leaving
        }
        return ;
    }
    // $ANTLR end "atributo"

    // Delegated rules


 

    public static final BitSet FOLLOW_ABRIR_ET_in_abrir_etiqueta47 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_et_biblioteca_in_entrada56 = new BitSet(new long[]{0x0000000000004010L});
    public static final BitSet FOLLOW_libros_in_entrada58 = new BitSet(new long[]{0x0000000000004010L});
    public static final BitSet FOLLOW_et_biblioteca_fin_in_entrada61 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_abrir_etiqueta_in_et_biblioteca68 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_BIBLIOTECA_in_et_biblioteca70 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_et_biblioteca72 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_biblioteca75 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FIN_ET_in_et_biblioteca_fin83 = new BitSet(new long[]{0x0000000000000040L});
    public static final BitSet FOLLOW_BIBLIOTECA_in_et_biblioteca_fin85 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_biblioteca_fin87 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_abrir_etiqueta_in_et_libro94 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_LIBRO_in_et_libro96 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_et_libro98 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_libro101 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FIN_ET_in_et_libro_fin109 = new BitSet(new long[]{0x0000000000020000L});
    public static final BitSet FOLLOW_LIBRO_in_et_libro_fin111 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_libro_fin113 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_abrir_etiqueta_in_et_titulo120 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_TITULO_in_et_titulo122 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_et_titulo124 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_titulo127 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FIN_ET_in_et_titulo_fin135 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_TITULO_in_et_titulo_fin137 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_titulo_fin139 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_abrir_etiqueta_in_et_autor146 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_AUTOR_in_et_autor148 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_et_autor150 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_autor153 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FIN_ET_in_et_autor_fin161 = new BitSet(new long[]{0x0000000000000020L});
    public static final BitSet FOLLOW_AUTOR_in_et_autor_fin163 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_autor_fin165 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_abrir_etiqueta_in_et_editorial172 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_EDITORIAL_in_et_editorial174 = new BitSet(new long[]{0x0000000000080200L});
    public static final BitSet FOLLOW_atributo_in_et_editorial176 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_editorial179 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FIN_ET_in_et_editorial_fin187 = new BitSet(new long[]{0x0000000000002000L});
    public static final BitSet FOLLOW_EDITORIAL_in_et_editorial_fin189 = new BitSet(new long[]{0x0000000000000200L});
    public static final BitSet FOLLOW_CERRAR_ET_in_et_editorial_fin191 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_et_libro_in_libros198 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_contenido_in_libros200 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_et_libro_fin_in_libros202 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_titulo_in_contenido209 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_autor_in_contenido211 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_editorial_in_contenido213 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_et_titulo_in_titulo220 = new BitSet(new long[]{0x0000000000184000L});
    public static final BitSet FOLLOW_dentro_et_in_titulo222 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_et_titulo_fin_in_titulo224 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_et_autor_in_autor231 = new BitSet(new long[]{0x0000000000184000L});
    public static final BitSet FOLLOW_dentro_et_in_autor233 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_et_autor_fin_in_autor235 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_et_editorial_in_editorial242 = new BitSet(new long[]{0x0000000000184000L});
    public static final BitSet FOLLOW_dentro_et_in_editorial244 = new BitSet(new long[]{0x0000000000004000L});
    public static final BitSet FOLLOW_et_editorial_fin_in_editorial246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PALABRAS_in_atributo267 = new BitSet(new long[]{0x0000000000008000L});
    public static final BitSet FOLLOW_IGUAL_in_atributo269 = new BitSet(new long[]{0x0000000000000100L});
    public static final BitSet FOLLOW_CADENA_in_atributo271 = new BitSet(new long[]{0x0000000000000002L});

}